/**
  ******************************************************************************
  * @file    main.c
  * @author  测试1组（houtiezhu）
  * @version v0
  * @date    09-07-2019
  *           
  * @verbatim
  **/
/* Includes ------------------------------------------------------------------*/

#include "define.h"
#include "disp.h"
#include "power.h"
#include "clk.h"
#include "gpio.h"
#include "time.h"
#include "uart.h"
#include "spk.h"
#include "flash.h"
#include "adc.h"
#include "algo.h"
#include "bp.h"
#include "func.h"
#include "op.h"
#include "pwm.h"

const uint8 	FiveTable[]={0x23,0x25,0x22,0x26,0x24};

uint8 VoiceFlag;	//英土：0土耳其 1英语  普通话粤语：0普通话 1粤语
												//五国 0土 1德 2英 3俄 4阿拉伯
uint8 VoiceLevel;//音量

uint8 	VoiceType;
uint8 VoiceType2;
/*
//#define  Busy 				GPIO_ReadInputDataBit( GPIO2,GPIO_Pin_7)
#define  Tx_D1_H  			GPIO_WriteOutputDataBit(GPIO1,GPIO_Pin_0,Bit_SET)			//RXD+
#define  Tx_D1_L 			GPIO_WriteOutputDataBit(GPIO1,GPIO_Pin_0,Bit_RESET)

#define  Tx_D2_H  			GPIO_WriteOutputDataBit(GPIO1,GPIO_Pin_1,Bit_SET)		//RXD-
#define  Tx_D2_L 			GPIO_WriteOutputDataBit(GPIO1,GPIO_Pin_1,Bit_RESET)		//RXD-

#define  Tx_D1				GPIO_ReadInputDataBit( GPIO1,GPIO_Pin_0)
#define  Tx_D2				GPIO_ReadInputDataBit( GPIO1,GPIO_Pin_1)

#define	 CLK_L				Tx_D1_L
#define	 CLK_H				Tx_D1_H
#define	 DATA_L				Tx_D2_L
#define	 DATA_H				Tx_D2_H

*/

void nop4(void)
{
	uint8 k = 8;
	while(k--);
}


//#ifdef MUSICOK
#if 0
static void Tx_D1cIn(void)			
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_0;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_IN;
	GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1,&GPIO_InitStruct);
}	//P10 is input  
  
static void Tx_D1cOut(void)
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_0 ;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_OUT;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P10 is output    						

static void  Tx_D2cIn(void)			
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_1; 
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_IN;
	GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P11 is input   
 
static void  Tx_D2cOut(void)		
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_1; 
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_OUT;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P11 is output    		

#endif
//#else
#if 1
	
static void Tx_D1cIn(void)			
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_1;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_IN;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1,&GPIO_InitStruct);
}	//P10 is input  
  
static void Tx_D1cOut(void)
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_1 ;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_OUT;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P10 is output    						

static void  Tx_D2cIn(void)			
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_0; 
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_IN;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P11 is input   
 
static void  Tx_D2cOut(void)		
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_0; 
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_OUT;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1, &GPIO_InitStruct);
}	//P11 is output    		



#endif


void MusicGPIOtest(void)
{
	nop4();
	Tx_D1_H;
	nop4();
	Tx_D1_L;
	nop4();
	Tx_D2_H;
	nop4();
	Tx_D2_L;
	nop4();
	Tx_D1cIn();
	nop4();
	Tx_D2cIn();
	nop4();
	nop4();
	nop4();
	
}




/*=====================================================================================
 语音子程式
  function: SoundStart
  I/P:
  O/P:
======================================================================================*/
void SoundStart (void)
  {		unsigned int SoundDelayTime=0;
  		//Tx_D1=0;
		Tx_D1_L;
  		nop4();
		nop4();
		Tx_D1cOut();
		nop4();
		nop4();
  		Tx_D2cIn(); //input
		nop4();
		nop4();
  		do{SoundDelayTime++;}while(Tx_D2&&(SoundDelayTime<SoundDelayValue));
  		//Tx_D1=1;//接收后,改变为input
		Tx_D1_H;
		nop4();
  		Tx_D1cIn();
		nop4();
		nop4();
  		SoundDelayTime=0;
  		do{SoundDelayTime++;}while(!Tx_D2&&(SoundDelayTime<SoundDelayValue));
  }
void SoundEnd (void)
  {		unsigned int SoundDelayTime=0;
  		do{SoundDelayTime++;}while(Tx_D1&&(SoundDelayTime<SoundDelayValue));
  		//Tx_D2=0;
		Tx_D2_L;
		nop4();
  		Tx_D2cOut();//output 0 回应
		nop4();
		nop4();
  		SoundDelayTime=0;
  		do{SoundDelayTime++;}while(!Tx_D1&&(SoundDelayTime<SoundDelayValue));
  		//Tx_D2=1;
		Tx_D2_H;
		nop4();
  		Tx_D2cIn();
		nop4();
		nop4();
  }	
  
void Protocol2LineDataLow (void) 
  {		unsigned int SoundDelayTime=0;
  		//Tx_D1=0;
		Tx_D1_L;
		nop4();
  		Tx_D1cOut();
		nop4();
  		Tx_D2cIn(); //input
		nop4();
		nop4();
  		do{SoundDelayTime++;}while(Tx_D2&&(SoundDelayTime<SoundDelayValue));
  		//Tx_D1=1;
		Tx_D1_H;
		nop4();
  		Tx_D1cIn();
		nop4();
		nop4();
  		SoundDelayTime=0;
  		do{SoundDelayTime++;}while(!Tx_D2&&(SoundDelayTime<SoundDelayValue));
  } 
void Protocol2LineDataHigh (void) 
  {	
  		unsigned int SoundDelayTime=0;
  		//Tx_D2=0;
		Tx_D2_L;
		nop4();
  		Tx_D2cOut();
		nop4();
  		Tx_D1cIn(); //input
		nop4();
		nop4();
  		do{SoundDelayTime++;}while(Tx_D1&&(SoundDelayTime<SoundDelayValue));
  		//Tx_D2=1;
		Tx_D2_H;
		nop4();
  		Tx_D2cIn();
		nop4();
		nop4();
  		SoundDelayTime=0;
  		do{SoundDelayTime++;}while(!Tx_D1&&(SoundDelayTime<SoundDelayValue));
  }   
void SoundCommand (unsigned char R_CMD) 
  {
  		unsigned char CMDTemp;
  		unsigned char i;
  		CMDTemp=1;
  		SoundStart();
  		for(i=0;i<8;i++)
  			{
  				if((CMDTemp&R_CMD)==0){Protocol2LineDataLow();}
  				else{Protocol2LineDataHigh();}
  				CMDTemp<<=1;
  			}
	 	SoundEnd();
		delay(4);
    if(!VoiceSetFlag)
    {
	 	do{
			if(!KEY_POWER||!KEY_MEMORYUP||!KEY_MEMORYDOWN) {VoiceStop=1;break;}
			if((!MemoryMode||KeyNumber==2)&&!KEY_TIME) {VoiceStop=1;break;}
			if(!ThreeKeyFlag&&!KEY_TIME) {VoiceStop=1;break;}
			if(KeyNumber==7&&!KEY_USER&&MemoryMode) {VoiceStop=1;break;}
		}while(!Busy);
    }
  } 

void SoundNoWait(unsigned char R_CMD) 
  {
  		unsigned char CMDTemp;
  		unsigned char i;
  		CMDTemp=1;
  		SoundStart();
  		for(i=0;i<8;i++)
		{
  				if((CMDTemp&R_CMD)==0){Protocol2LineDataLow();}
  				else{Protocol2LineDataHigh();}
  				CMDTemp<<=1;
		}
	 	SoundEnd();
  } 
	
 void SoundData (unsigned char R_CMD) 
  {
  		unsigned char CMDTemp;
  		unsigned char i;
  		CMDTemp=1;
  		for(i=0;i<8;i++)
		{
  				if((CMDTemp&R_CMD)==0){Protocol2LineDataLow();}
  				else{Protocol2LineDataHigh();}
  				CMDTemp<<=1;
		}	
  } 
  
void SoundAllCommand(unsigned char R_CMD,unsigned char Data0,unsigned char Data1,unsigned char Data2)
 { 
 	SoundStart();
	SoundData(R_CMD);
	SoundData(Data0);
	SoundData(Data1);
	SoundData(Data2);
	SoundEnd();
	delay(4);
    if(!VoiceSetFlag)
    {
        do{
                if(!KEY_POWER||!KEY_MEMORYUP||!KEY_MEMORYDOWN) {SoundOff();VoiceStop=1;break;}
                if((!MemoryMode||KeyNumber==2)&&!KEY_TIME) {SoundOff();VoiceStop=1;break;}
                if(!ThreeKeyFlag&&!KEY_TIME) {SoundOff();VoiceStop=1;break;}
                if(KeyNumber==7&&!KEY_USER&&MemoryMode) {SoundOff();VoiceStop=1;break;}	
        }while(!Busy);
    }
 }	
 
//CLK DATA 协议 
 void DelaySound (unsigned int i)       //1/128*2=15.625mS
{
    unsigned int cnt1;
    uint8 j;
    for(cnt1=0;cnt1<=i;cnt1++)
    {
        for(j=1;j<8;j++);
    }
}  
  

void SoundCommand2(unsigned char VOICECMD)
  {
    unsigned char VOICETEMP=0x80;
    unsigned char i;
    unsigned char j;
    unsigned char VOICECMD_BAK;
    VoiceStop=0;
		if(VOICECMD!=0xfe) //fe是停止指令
		{
			if(VoiceType==3||(VoiceType==4&&VoiceFlag==0)) VOICECMD+=0x40;	//土耳其语
		}
    VOICECMD_BAK=VOICECMD;
    j=4;
SoundCommandLoop:
    for(i=0;i<8;i++)
	{
            if(VOICECMD&VOICETEMP) 
			{
				//DATA=1;
				DATA_H;
			}
            else 
			{
				//DATA=0;
				DATA_L;
			}
            DelaySound(1);
            //CLK=0;
			CLK_L;
            DelaySound(20);
            //CLK=1;
			CLK_H;
            DelaySound(20);
            VOICECMD<<=1;
	}
    delay(4);
    if(Busy)
	{
            VOICECMD=VOICECMD_BAK;
            j--;
            if(j==0) {goto SoundCommandOver;}
            else {goto SoundCommandLoop;}
	}
SoundCommandOver:
    //CLK=1;
    //DATA=1;
	CLK_H;
	DATA_H;
		if(!VoiceSetFlag)
		{
			do{
					if(!KEY_POWER||!KEY_MEMORYUP||!KEY_MEMORYDOWN) {VoiceStop=1;break;}
					if((!MemoryMode||KeyNumber==2)&&!KEY_TIME) {VoiceStop=1;break;}
					if(!ThreeKeyFlag&&!KEY_TIME) {VoiceStop=1;break;}
					if(KeyNumber==7&&!KEY_USER) {VoiceStop=1;break;}			
			}while(!Busy);
		}
  } 
  
void SoundAllCommand2(unsigned char VOICECMD,unsigned char VOICESYS1,unsigned char VOICEDIA1,unsigned char VOICEPUL1)
  {
    unsigned char VOICETEMP=0x80;
    unsigned char temp1;
    unsigned char i;
    unsigned char j;
    unsigned char jj;
    VoiceStop=0;
    jj=4;
	if(VoiceType==3||(VoiceType==4&&VoiceFlag==0)) VOICECMD+=0x33;
    outbyte[0]=VOICECMD;
    outbyte[1]=VOICESYS1;
    outbyte[2]=VOICEDIA1;
    outbyte[3]=VOICEPUL1;
SoundCommand6byteLoop:      
    for(j=0;j<4;j++)
	{
            temp1=outbyte[j];
            for(i=0;i<8;i++)
			{
                    if(temp1&VOICETEMP) 
					{
						//DATA=1;
						DATA_H;
					}
                    else 
					{
						//DATA=0;
						DATA_L;
					}
                    DelaySound(10);
                    //CLK=0;
					CLK_L;
                    DelaySound(40);
                    //CLK=1;
					CLK_H;
                    DelaySound(40);
                    temp1<<=1;
			}
	}
    delay(4);
    if(Busy)
	{
            jj--;
            if(jj==0) {goto SoundCommand6byteOver;}
            else {goto SoundCommand6byteLoop;}
	}
SoundCommand6byteOver: 				
    //CLK=1;
    //DATA=1;
	CLK_H;
	DATA_H;
		if(!VoiceSetFlag)
		{
			do{
					if(!KEY_POWER||!KEY_MEMORYUP||!KEY_MEMORYDOWN) {SoundOff();VoiceStop=1;break;}
					if((!MemoryMode||KeyNumber==2)&&!KEY_TIME) {SoundOff();VoiceStop=1;break;}
					if(!ThreeKeyFlag&&!KEY_TIME) {SoundOff();VoiceStop=1;break;}
					if(KeyNumber==7&&!KEY_USER) {SoundOff();VoiceStop=1;break;}	
			}while(!Busy); 
		}
  } 

void SoundOff1 (unsigned char R_CMD) 
  {
  		unsigned char CMDTemp;
  		unsigned char i;
  		CMDTemp=1;
  		SoundStart();
  		for(i=0;i<8;i++)
		{
  				if((CMDTemp&R_CMD)==0){Protocol2LineDataLow();}
  				else{Protocol2LineDataHigh();}
  				CMDTemp<<=1;
		}
	 	SoundEnd();
  }

void SoundOff2(unsigned char VOICECMD)
  {
    unsigned char VOICETEMP=0x80;
    unsigned char i;
    //unsigned char VOICECMD_BAK;
    VoiceStop=0;
    //VOICECMD_BAK=VOICECMD;
//SoundCommandLoop:
    for(i=0;i<8;i++)
	{
            if(VOICECMD&VOICETEMP) 
			{
				//DATA=1;
				DATA_H;
			}
            else
			{
				//DATA=0;
				DATA_L;
			}
            DelaySound(1);
            //CLK=0;
			CLK_L;
            DelaySound(20);
            //CLK=1;
			CLK_H;
            DelaySound(20);
            VOICECMD<<=1;
	}
   // CLK=1;
   // DATA=1;
	CLK_H;
	DATA_H;
  }

void SoundOff3(unsigned char VOICECMD)
  {
    unsigned char VOICETEMP=0x80;
    unsigned char temp1;
    unsigned char i;
    unsigned char j;
    //unsigned char jj;
    //jj=4;
    outbyte[0]=VOICECMD;
    outbyte[1]=0;
    outbyte[2]=0;
    outbyte[3]=0;    
    for(j=0;j<4;j++)
	{
            temp1=outbyte[j];
            for(i=0;i<8;i++)
			{
                    if(temp1&VOICETEMP) 
					{
						//DATA=1;
						DATA_H;
					}
                    else 
					{
						//DATA=0;
						DATA_L;
					}
                    DelaySound(10);
                    //CLK=0;
					CLK_L;
                    DelaySound(40);
                    //CLK=1;
					CLK_H;
                    DelaySound(40);
                    temp1<<=1;
			}
	}		
    //CLK=1;
   //DATA=1;
	CLK_H;
	DATA_H;
  } 
	
void SoundOff(void)
{
			if(VoiceType==1||VoiceType==7||VoiceType==5||VoiceType==12||VoiceType==14)//普通中文、波兰语、美语
			{
				if((VoiceType==1) && (VoiceType2==2))	//20230508	CN+MD
				{
					SoundCommand(0xFA);	
				}
                else if(VoiceType==1&&VoiceType2==3)
                {
                    //SoundOff3(0xcc);
                    SoundOff1(0xfC);//FCH 停止语音播报
                }
				else
				{
					SoundOff1(0xf7);				
				}
			}
			else if((VoiceType>=2&&VoiceType<=4)||VoiceType==8||VoiceType==10||VoiceType==11)//英语、土耳其语 Khmer
			{
				SoundOff1(0xfe);
			}
			else if(VoiceType==6)//粤语普通话
			{
				SoundOff2(0xf7);
			}
			else if(VoiceType==9)
			{
				SoundStart();
				SoundData(0xbb);
				SoundData(0);
				SoundData(0);
				SoundData(0);
				SoundEnd();
			}
			else if(VoiceType==13)
			{
				//SoundOff3(0xcc);
				SoundOff2(0xf7);
			}
}

void SoundFive(void)
{
	if(VoiceFlag<5) SoundAllCommand2(FiveTable[VoiceFlag],0,0,0);
}

void SoundLevelSet(void)
{
	if(VoiceLevel>0)
	{
		SoundCommand2(0xC0+VoiceLevel*2);
	}
}

void SoundThree(void)
{
	if(VoiceFlag<3) SoundAllCommand2(0x22+VoiceFlag,0,0,0);
}

void VoiceInit(void)
{
	VoiceSetFlag=0;
	if(VoiceType==6)
	{
		VoiceFlag=1;
		SoundAllCommand2(0x33,0,0,0);
	}
	else VoiceFlag=0;
	
	if(VoiceType==11) {VoiceFlag=1;SoundAllCommand2(0x11,0,0,0);}
	if(VoiceType==8) SoundFive();
	if(VoiceType==13) 
	{
		if(VoiceType2==1||VoiceType2==3)
		{
			
		}
		VoiceFlag=2;
		if(VoiceType2<=1) SoundThree();
	}
}



void Sound10(void)
{
					SoundCommand(0xDF);//您的血压
					if(VoiceStop) {VoiceStop=0;goto EXIT;}
					if(SLevel==1)
					{
					}
					else if(SLevel==2)
					{
						SoundCommand(0XD7);//低压
						if(VoiceStop) {VoiceStop=0;goto EXIT;}
					}
					else if(SLevel==3)
					{
						SoundCommand(0XD6);//高压
						if(VoiceStop) {VoiceStop=0;goto EXIT;}
						SoundCommand(0XFC);//偏高
						if(VoiceStop) {VoiceStop=0;goto EXIT;}
						SoundCommand(0XD7);//低压
					}
					else if(SLevel==4)
					{
						SoundCommand(0XD6);//高压
						if(VoiceStop) {VoiceStop=0;goto EXIT;}
					}
					SoundCommand(0XFD);//偏低
					EXIT:
					nop4();
					//_nop_();
}







//==================================BZ========================================

void BZ_Init(void)
{
	RCC_APB2PeriphClockConfig(RCC_APBPeriph_BUZ0,RCC_BUZCLK_IHRC_DIV750,RCC_PWMCLK_DIV1);//RCC_PWMCLK_DIV1
	RCC_APBPeriphClockCmd(RCC_APBPeriph_BUZ0, ENABLE);   //外设时钟使能
	BUZ_DeInit(BUZ0);
	BUZ_DeInit(BUZ1);
	BUZ_SetOutFrequency(BUZ0,3);//4K
	BUZ_Cmd(BUZ0,DISABLE);
	//BUZ_Cmd(BUZ0,ENABLE);
}
 


//============================HF63XX=======================================
void HF63XX_Init(void)
{
	//busy
	GPIO_InitTypeDef  GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_7;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_IN;
	GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_NOPULL;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO2,&GPIO_InitStruct);
	
	//RST  DATA
	GPIO_InitStruct.GPIO_Pin 		=	GPIO_Pin_0|GPIO_Pin_1;
	GPIO_InitStruct.GPIO_Mode 		=	GPIO_Mode_OUT;
	//GPIO_InitStruct.GPIO_PuPd 		=	GPIO_PuPd_UP;//选择开启上拉 GPIO_PuPd_NOPULL;
	GPIO_Init(GPIO1,&GPIO_InitStruct);
	
	RST_L;
	DATA_L;
}

void HF63XX_Music(uint8 Addr)
{
	uint8 i,t=0;
recheck:
	RST_H;// = 1;
	DATA_L;// = 0;
	DelaySound(200);//100us
	RST_L;// = 0;
	delay(1);
	for(i=0;i<Addr;i++)
	{
		DATA_H;// = 1;
		DelaySound(200);
		DATA_L;// = 0;
		DelaySound(200);
	}
	delay(1);
	if(!Busy&&t<1)
	{
		RST_L;// = 0;
		DATA_L;// = 0;
		delay(1);
		t++;
		goto recheck;
	}
	while(Busy&&KEY_POWER&& KEY_TIME&& KEY_USER&& KEY_MEMORYDOWN&&KEY_MEMORYUP);
	//stop
	if(!KEY_POWER|| !KEY_TIME|| !KEY_USER|| !KEY_MEMORYDOWN||!KEY_MEMORYUP)
	{
		RST_H;// = 1;
		DATA_L;// = 0;
		DelaySound(200);//100us
		RST_L;// = 0;
		delay(1);
		DATA_H;// = 1;
		DelaySound(200);
		DATA_L;// = 0;
		DelaySound(200);
	}
	delay(1);
}


void  HFXX_TEST(void)
{
//	uint8 k;
	HF63XX_Init();
	delay(1);
	while(1)
	{
		/*for(k=0;k<61;k++)
		{
			HF63XX_Music(k);
			delay(75);
			delay(75);
			delay(75);
		}	*/
	
		HF63XX_Music(3);//120
		HF63XX_Music(56);
		HF63XX_Music(48);
	
		HF63XX_Music(5);
		HF63XX_Music(54);//89
		HF63XX_Music(34);
	}
}